﻿using System;
using System.Configuration;
using System.Collections.Generic;

namespace OrionBanque.Classe
{
    public class Chequier
    {
        public int Id { get; set; }
        public int NumChequier { get; set; }
        public int NumCheque { get; set; }
        public int IdOperation { get; set; }
        public int IdCompte { get; set; }

        static public void Delete(int id)
        {
            switch (ConfigurationManager.AppSettings["typeConnection"])
            {
                case Configuration.BD_SQLITE:
                    OrionBanque.Classe.SQLite.Chequier.Delete(id);
                    break;
                default:
                    throw new Exception(String.Format("Ce mode de connection({0}) n'est pas autorisé.", ConfigurationManager.AppSettings["typeConnection"]));

            }
        }

        static public void Delete(OrionBanque.Classe.Chequier u)
        {
            OrionBanque.Classe.Chequier.Delete(u.Id);
        }

        static public OrionBanque.Classe.Chequier Charge(int id)
        {
            OrionBanque.Classe.Chequier u = new OrionBanque.Classe.Chequier();

            switch (ConfigurationManager.AppSettings["typeConnection"])
            {
                case Configuration.BD_SQLITE:
                    u = OrionBanque.Classe.SQLite.Chequier.Charge(id);
                    break;
                default:
                    throw new Exception(String.Format("Ce mode de connection({0}) n'est pas autorisé.", ConfigurationManager.AppSettings["typeConnection"]));

            }

            return u;
        }

        static public OrionBanque.Classe.Chequier ChargeOperation(int idOperation)
        {
            OrionBanque.Classe.Chequier u = new OrionBanque.Classe.Chequier();

            switch (ConfigurationManager.AppSettings["typeConnection"])
            {
                case Configuration.BD_SQLITE:
                    u = OrionBanque.Classe.SQLite.Chequier.Charge(idOperation);
                    break;
                default:
                    throw new Exception(String.Format("Ce mode de connection({0}) n'est pas autorisé.", ConfigurationManager.AppSettings["typeConnection"]));

            }

            return u;
        }

        static public void DesaffecteCheque(int idOp)
        {
            switch (ConfigurationManager.AppSettings["typeConnection"])
            {
                case Configuration.BD_SQLITE:
                    OrionBanque.Classe.SQLite.Chequier.DesaffecteCheque(idOp);
                    break;
                default:
                    throw new Exception(String.Format("Ce mode de connection({0}) n'est pas autorisé.", ConfigurationManager.AppSettings["typeConnection"]));

            }

        }

        static public List<OrionBanque.Classe.Chequier> ChargeTout(int idCompte)
        {
            List<OrionBanque.Classe.Chequier> lu = new List<OrionBanque.Classe.Chequier>();

            switch (ConfigurationManager.AppSettings["typeConnection"])
            {
                case Configuration.BD_SQLITE:
                    lu = OrionBanque.Classe.SQLite.Chequier.ChargeTout(idCompte);
                    break;
                default:
                    throw new Exception(String.Format("Ce mode de connection({0}) n'est pas autorisé.", ConfigurationManager.AppSettings["typeConnection"]));

            }

            return lu;
        }

        static public List<OrionBanque.Classe.Chequier> ChargeToutCompte(int idCompte)
        {
            List<OrionBanque.Classe.Chequier> lu = new List<OrionBanque.Classe.Chequier>();

            switch (ConfigurationManager.AppSettings["typeConnection"])
            {
                case Configuration.BD_SQLITE:
                    lu = OrionBanque.Classe.SQLite.Chequier.ChargeToutCompte(idCompte);
                    break;
                default:
                    throw new Exception(String.Format("Ce mode de connection({0}) n'est pas autorisé.", ConfigurationManager.AppSettings["typeConnection"]));

            }

            return lu;
        }

        static public List<OrionBanque.Classe.Chequier> ChargeListChequeMajOpe(int idCompte, int idOperation)
        {
            List<OrionBanque.Classe.Chequier> lu = new List<OrionBanque.Classe.Chequier>();

            switch (ConfigurationManager.AppSettings["typeConnection"])
            {
                case Configuration.BD_SQLITE:
                    lu = OrionBanque.Classe.SQLite.Chequier.ChargeListChequeMajOpe(idCompte, idOperation);
                    break;
                default:
                    throw new Exception(String.Format("Ce mode de connection({0}) n'est pas autorisé.", ConfigurationManager.AppSettings["typeConnection"]));
            }

            return lu;
        }

        static public void Maj(OrionBanque.Classe.Chequier u)
        {
            switch (ConfigurationManager.AppSettings["typeConnection"])
            {
                case Configuration.BD_SQLITE:
                    OrionBanque.Classe.SQLite.Chequier.Maj(u);
                    break;
                default:
                    throw new Exception(String.Format("Ce mode de connection({0}) n'est pas autorisé.", ConfigurationManager.AppSettings["typeConnection"]));
            }
        }

        static public void Sauve(OrionBanque.Classe.Chequier u)
        {
            switch (ConfigurationManager.AppSettings["typeConnection"])
            {
                case Configuration.BD_SQLITE:
                    OrionBanque.Classe.SQLite.Chequier.Sauve(u);
                    break;
                default:
                    throw new Exception(String.Format("Ce mode de connection({0}) n'est pas autorisé.", ConfigurationManager.AppSettings["typeConnection"]));
            }
        }
    }
}
